package com.fishery.customization.service;

import com.fishery.customization.entity.FunctionLabel;
import com.fishery.customization.entity.OneLevelLabel;

import java.util.List;

public interface FunctionLabelService {

	/**
	 * 保存权限标签
	 *
	 * @param functionName
	 * @param label
	 * @return
	 */
	boolean saveFunctionLabel(String functionName, OneLevelLabel label);

	/**
	 * 修改权限标签
	 *
	 * @param oldFunctionName
	 * @param newFunctionName
	 * @param label
	 * @return
	 */
	boolean updateFunctionLabel(String oldFunctionName, String newFunctionName, OneLevelLabel label);

	/**
	 * 删除权限标签
	 *
	 * @param functionName
	 * @return
	 */
	boolean removeFunctionLabel(String functionName);

	/**
	 * 查询出所有权限标签
	 *
	 * @return
	 */
	List<FunctionLabel> getAllFunctionLabels();

	/**
	 * 通过权限名查出一级标签
	 *
	 * @param functionName
	 * @return
	 */
	OneLevelLabel getOneLevelLabelByFunctionName(String functionName);

	/**
	 * 通过权限名集合查出一级标签（带组装二级标签）
	 */
	List<OneLevelLabel> getOneLevelLabelsByFunctionNames(List<String> functionNames);

	/**
	 * 查询出所有一级标签（带组装二级标签）
	 *
	 * @return
	 */
	List<OneLevelLabel> getAllOneLevelLabels();
}

